package com.ruicar.afs.cloud.basic.api.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruicar.afs.cloud.common.modules.contract.enums.PaymentModeEnum;
import com.ruicar.afs.cloud.common.modules.contract.enums.PaymentStatusEnum;
import com.ruicar.afs.cloud.common.modules.contract.enums.YesOrNoEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @author: xudongdong
 * @date 2020-05-29 09:31:34 
 * @description 付款池数据
 */
@Data
public class BasicPaymentPoolDto {

	/** 合同编号 */
	@ApiModelProperty("合同编号")
	private String contractNo;
	@ApiModelProperty("是否跨行")
	private YesOrNoEnum isConglomerate;
	/** 付款银行 付款成功回写 */
	@ApiModelProperty("付款银行 付款成功回写")
	private String paymentBankCode;
	/** 付款状态 枚举值：待付款，付款中，付款成功，付款失败 */
	@ApiModelProperty("付款状态 枚举值：待付款，付款中，付款成功，付款失败")
	private PaymentStatusEnum paymentStatus;
	/** 付款账号 付款成功回写 */
	@ApiModelProperty("付款账号 付款成功回写")
	private String paymentAccount;
	/** 付款账户名称 付款成功回写 */
	@ApiModelProperty("付款账户名称 付款成功回写")
	private String paymentAccountName;
	/** 付款金额 不可为负数 */
	@ApiModelProperty("付款金额 不可为负数")
	private BigDecimal paymentAmt;
	/** 收款银行（总行） */
	@ApiModelProperty("收款银行（总行）")
	private String receiptBankCode;
	/** 收款银行名称（分支行） */
	@ApiModelProperty("收款银行名称（分支行）")
	private String receiptBankName;
	/** 收款银行电子联行号（分支行） */
	@ApiModelProperty("收款银行电子联行号（分支行）")
	private String receiptEbankCode;
	/** 收款账号 */
	@ApiModelProperty("收款账号")
	private String receiptAccount;
	/** 收款账户名称 */
	@ApiModelProperty("收款账户名称")
	private String receiptAccountName;
	/** 是否允许自动付款 枚举值：暂不付款-否，可付款-是 */
	@ApiModelProperty("是否允许自动付款 枚举值：暂不付款-否，可付款-是")
	private YesOrNoEnum isPayment;
	/** 付款模式 枚举值：自动付款，手动付款 */
	@ApiModelProperty("付款模式 枚举值：自动付款，手动付款")
	private PaymentModeEnum paymentMode;
	/** 付款成功时间 付款成功回写 */
	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@ApiModelProperty("付款成功时间 付款成功回写")
	private Date activationTime;
	/** 睿易通请求标识号 */
	@ApiModelProperty("付款防重")
	private String msgid ;
	/** 批次内序号 */
	@ApiModelProperty("批次内序号")
	private Integer seqNo;
	/** 上一次获取结果时间 */
	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@ApiModelProperty("上一次获取结果时间")
	private Date lastResultTime;
	/** 上一次付款失败原因 */
	@ApiModelProperty("上一次付款失败原因")
	private String lastFailReason;
	/** 是否正在付款 */
	@ApiModelProperty("是否正在付款")
	private YesOrNoEnum isPaying ;
	/** 乐观锁 */
	private Long revision ;

}
